package system;

public interface Constants
{

	// engine constants.	class GameState
	{
		 // game state
		public final static int ShowLogo			= 0;
		public final static int Loading				= ShowLogo + 1;
		public final static int AskForSounds		= Loading + 1;
		public final static int Splash				= AskForSounds + 1;
		public final static int MainMenu	    	= Splash + 1;
		public final static int HighScore         	= MainMenu + 1;
		public final static int IGP					= HighScore + 1;
		public final static int Options				= IGP + 1;
		public final static int About				= Options + 1;
		public final static int Help				= About + 1;
		public final static int InGame	            = Help + 1;
		public final static int InGameMenu          = InGame + 1;
		public final static int GameWin				= InGameMenu + 1;
		public final static int GameOver    		= GameWin + 1;
		public final static int Exit	   			= GameOver + 1;
		public final static int QuitMission			= Exit + 1;
		public final static int Complete			= QuitMission + 1;
	}
	
	class InGameState
	{
		public final static int Demo1 = 0;
		public final static int Demo2 = Demo1 + 1;
		public final static int Demo3 = Demo2 + 1;
	}


	class UpdateType
	{
		public final static int UPDATE		= 0;
		public final static int PAINT		= 1;
		public final static int CTOR		= 2;
		public final static int DTOR		= 3;
	}
	
	final class CubeStatus
	{
		public final static int STAND					= 1;
		public final static int MOVE_AROUND_ITSELF		= 2;
		public final static int MOVE_AROUND_VECTOR		= 4;
	}
	final class Size
	{
		public final static int		MNU_ITEM_HEIGHT	= 39;
		public final static int		MNU_ITEM_WIDTH	= 220;
		public final static int		MNU_AFS_TITLE_WIDTH = 480;
		public final static int		MNU_AFS_TITLE_HEIGHT = 36;
		public final static int		MNU_EXIT_TITLE_WIDTH = 480;
		public final static int 	MNU_EXIT_TITLE_HEIGHT = 72;
		public final static int		MNU_QUIT_TITLE_WIDTH = 480;
		public final static int 	MNU_QUIT_TITLE_HEIGHT = 36;
		public final static int		SCREEN_WIDTH = 480;
		public final static int		SCREEN_HEIGHT = 320;
	}
	public final static int DK_NUM0 = 1 << 0;
    public final static int DK_NUM1 = 1 << 1;
    public final static int DK_NUM2 = 1 << 2;
    public final static int DK_NUM3 = 1 << 3;
    public final static int DK_NUM4 = 1 << 4;
    public final static int DK_NUM5 = 1 << 5;
    public final static int DK_NUM6 = 1 << 6;
    public final static int DK_NUM7 = 1 << 7;
    public final static int DK_NUM8 = 1 << 8;
    public final static int DK_NUM9 = 1 << 9;
    public final static int DK_POUND = 1 << 10;
    public final static int DK_STAR = 1 << 11;
    public final static int DK_PAD_LEFT = 1 << 12;
    public final static int DK_PAD_RIGHT = 1 << 13;
    public final static int DK_PAD_UP = 1 << 14;
    public final static int DK_PAD_DOWN = 1 << 15;
    public final static int DK_PAD_MIDDLE = 1 << 16;
    public final static int DK_SOFT_LEFT = 1 << 17;
    public final static int DK_SOFT_RIGHT = 1 << 18;

    // game key constants, used in game to drive events
    public final static int GK_UPLEFT = DK_NUM1;
    public final static int GK_UPRIGHT = DK_NUM3;
    public final static int GK_DOWNLEFT = DK_NUM7;
    public final static int GK_DOWNRIGHT = DK_NUM9;
    public final static int GK_FLYINGLEFT = DK_NUM4 | DK_PAD_LEFT;
    public final static int GK_FLYINGRIGHT = DK_NUM6 | DK_PAD_RIGHT;   
    public final static int GK_LEFT = DK_NUM4 | DK_NUM7 | DK_PAD_LEFT;
    public final static int GK_RIGHT = DK_NUM6 | DK_NUM9 | DK_PAD_RIGHT;
    public final static int GK_UP = DK_NUM2 | DK_PAD_UP;
    public final static int GK_DOWN = DK_NUM8 | DK_PAD_DOWN;
    public final static int GK_CENTER = DK_NUM5 | DK_PAD_MIDDLE;
    public final static int GK_LEFTRIGHT = GK_LEFT | GK_RIGHT;
    public final static int GK_AUTOPLAY = DK_STAR;
    public final static int GK_DEBUG = DK_POUND;

    public final static int GK_BACK = DK_SOFT_LEFT;
    public final static int GK_CONFIRM = DK_SOFT_RIGHT;

    public final static int GK_MENU = GK_CONFIRM;
    public final static int GK_SELECT = DK_NUM5 | DK_PAD_MIDDLE | GK_CONFIRM;
    public final static int GK_ANY_NUM = DK_NUM1 | DK_NUM2 | DK_NUM3 | DK_NUM4 |
        DK_NUM5 | DK_NUM6 | DK_NUM7 | DK_NUM8 | DK_NUM9 | DK_NUM0;
    public final static int GK_ANY_LETTER = DK_NUM2 | DK_NUM3 | DK_NUM4 |
        DK_NUM5 | DK_NUM6 | DK_NUM7 | DK_NUM8 | DK_NUM9;
	
	// redefine LSK and RSK
    public final static int KEY_SOFT_LEFT	= 82;
    public final static int KEY_SOFT_RIGHT	= 4;
	
}
